package com.sxt.pro.controller;

import java.util.Date;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sxt.pro.pojo.Guide;
import com.sxt.pro.service.GuideService;
import com.sxt.pro.vo.GuideVo;
import com.sxt.sys.common.AppFileUtils;
import com.sxt.sys.common.Constast;
import com.sxt.sys.common.DataGridView;
import com.sxt.sys.common.ResultObj;
import com.sxt.sys.common.WebUtils;


/**  

* @Description: 网点导览控制层

* @author xinxiaokang  

* @date 2020年11月19日 上午11:26:09

*/
@RestController
@RequestMapping("/Guide")
public class GuideController {
	
	@Autowired
	private GuideService guideService;
	
	/**
	 * 查询网点导览分页列表
	 * @param guideVo
	 * @return
	 */
	@RequestMapping("/loadAllGuide")
	public DataGridView loadAllGuide(GuideVo guideVo){
		//存入网点编号和用户名放入session中
		 int banknbr = (int) WebUtils.getSession().getAttribute("banknbr");
		 guideVo.setBanknbr(banknbr);
		//初始化 当前页、每页显示条数
		IPage<Guide> page = new Page<>(guideVo.getPage(), guideVo.getLimit());
		//封装对象查询条件
		QueryWrapper<Guide> queryWrapper = new QueryWrapper<Guide>();
		//筛选条件：网点编号
		  queryWrapper.eq(guideVo.getBanknbr()!=null&&guideVo.getBanknbr()!=0,"banknbr",guideVo.getBanknbr());
		//筛选条件:名称
		queryWrapper.like(StringUtils.isNotBlank(guideVo.getGuidename()), "guidename", guideVo.getGuidename());
		//筛选条件：大于开始时间
		queryWrapper.ge(guideVo.getStartTime()!=null, "guidetime", guideVo.getStartTime());
		//筛选条件：小于结束时间
		queryWrapper.le(guideVo.getEndTime()!=null, "guidetime", guideVo.getEndTime());
		queryWrapper.orderByDesc("guidetime");
		//获取分页数据
		this.guideService.page(page, queryWrapper);
		return new DataGridView(page.getTotal(), page.getRecords());
	}
	
	/**
	 * 添加网点导览
	 * @param guideVo
	 * @return
	 */
	@RequestMapping("addGuide")
	public ResultObj addGuide(GuideVo guideVo) {
		//添加时，网点默认
		int banknbr = (int) WebUtils.getSession().getAttribute("banknbr");
		guideVo.setBanknbr(banknbr);
		try {
			if(guideVo.getGuideimage()!=null&&guideVo.getGuideimage().endsWith("_temp")) {
				//图片名称
				String newName= AppFileUtils.renameFile(guideVo.getGuideimage());
				guideVo.setGuideimage(newName);
				guideVo.setGuidetime(new Date());
			}
			if(guideVo.getGuidepdfimage()!=null&&guideVo.getGuidepdfimage().endsWith("_temp")) {
				//图片名称
				String newName = AppFileUtils.renameFile(guideVo.getGuidepdfimage());
				guideVo.setGuidepdfimage(newName);
			}
			this.guideService.save(guideVo);
			return ResultObj.ADD_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.ADD_ERROR;
		}
	}

	/**
	 * 修改网点导览
	 * @param guideVo
	 * @return
	 */
	@RequestMapping("updateGuide")
	public ResultObj updateGuide(GuideVo guideVo) {
		try {
			//说明是不默认图片
			if(!(guideVo.getGuideimage()!=null&&guideVo.getGuideimage().equals(Constast.IMAGES_DEFAULTGOODSIMG_PNG))) {
				if(guideVo.getGuideimage().endsWith("_temp")) {
					String newName= AppFileUtils.renameFile(guideVo.getGuideimage());
					guideVo.setGuideimage(newName);
					//删除原先的图片
					String oldPath=this.guideService.getById(guideVo.getId()).getGuideimage();
					if (!(oldPath.equals(Constast.IMAGES_DEFAULTGOODSIMG_PNG))) {
						AppFileUtils.removeFileByPath(oldPath);
					}
				}
			}
			if(!(guideVo.getGuidepdfimage()!=null&&guideVo.getGuidepdfimage().equals(Constast.IMAGES_DEFAULTGOODSIMG_PNG))) {
				if(guideVo.getGuidepdfimage().endsWith("_temp")) {
					String newName=AppFileUtils.renameFile(guideVo.getGuidepdfimage());
					guideVo.setGuidepdfimage(newName);
					//删除原先的图片
					String oldPath=this.guideService.getById(guideVo.getId()).getGuidepdfimage();
					if (!(oldPath.equals(Constast.IMAGES_DEFAULTGOODSIMG_PNG))) {
						AppFileUtils.removeFileByPath(oldPath);
					}
				}
			}
			this.guideService.updateById(guideVo);
			return ResultObj.UPDATE_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.UPDATE_ERROR;
		}
	}

	/**
	 * 删除网点导览
	 * @param id
	 * @param guideimage
	 * @return
	 */
	@RequestMapping("deleteGuide")
	public ResultObj deleteGuide(Integer id,String guideimage,String guidepdfimage) {
		try {
			//删除原文件
			if (!guideimage.isEmpty() && !guideimage.equals("images/defaultgoodsimg.png")) {
				AppFileUtils.removeFileByPath(guideimage);
			}
			if (!guidepdfimage.isEmpty() && !guidepdfimage.equals("images/defaultgoodsimg.png")) {
				AppFileUtils.removeFileByPath(guidepdfimage);
			}
			this.guideService.removeById(id);
			return ResultObj.DELETE_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.DELETE_ERROR;
		}
	}
	
}
